package com.link2room.rodimus.facade;

import com.link2room.common.jpa.result.QueryResult;
import com.link2room.rodimus.dto.param.api.*;
import com.link2room.rodimus.dto.result.base.*;

/**
 * Created by LN on 2017/12/5
 */
public interface IGroupBuyingFacadeService {
    /**
     * 活动列表
     * @param paramDto
     * @return
     * @throws Exception
     */
    QueryResult<GroupBuyingBaseDto> groupBuyingBaseList(GroupBuyingListParamDto paramDto) throws Exception;

    GroupBuyingBaseDto groupBuyingBase(GroupBuyingListParamDto paramDto) throws Exception;

    /**
     * 开团下单
     * @param paramDto
     */
    GroupBuyingTeamCreatedResDto createGroupBuyingTeam(GroupBuyingTeamCreateParamDto paramDto) throws Exception;

    /**
     * 参团
     * @param paramDto
     * @return
     * @throws Exception
     */
    GroupBuyingTeamCreatedResDto joinTheTeam(GroupBuyingJoinTheTeamParamDto paramDto) throws Exception;

    /**
     * 团队list
     * @param paramDto
     * @return
     */
    QueryResult<GroupBuyingTeamDto> groupBuyingTeamList(GroupBuyingTeamFindParamDto paramDto) throws Exception;

    GroupBuyingTeamDto groupBuyingTeam(GroupBuyingTeamFindParamDto paramDto) throws Exception;

    /**
     * 当前用参团队伍列表
     * @return
     */
    QueryResult<GroupBuyingTeamDto> currentUserTeams(GroupBuyingCurrentUserTeamFindParamDto paramDto) throws Exception;

    /**
     * 是团队详情
     * @param paramDto
     * @return
     * @throws Exception
     */
    GroupBuyingTeamCurrentUserDto currentUserTeam(GroupBuyingTeamFindParamDto paramDto) throws Exception;
}
